Each organization making use of a computer system typically has a person called a systems administrator who looks after the general upkeep of the computer system and is responsible for periodically updating the computer system to make it work better over time. For example, when new applications (software products) are written by outside vendors, and it is decided that one of these applications should be purchased and used within the organization, the system administrator is responsible for taking the necessary steps to install this new application into the organization's computer system.
Applications are usually written with a number of elements left unconfigured so that each systems administrator can modify the application according to the specific needs of the respective computer system and the respective organization when installing the application into the computer system. This gives the administrator a great deal of flexibility in configuring the system.
However, as applications become more and more complex, installing a new application in this way can also present a great deal of difficulty for the systems administrator. For example, when applications are written, as many are today, in the object-oriented programming paradigm, the structure of the application can become quite complex. This latter programming technique is becoming more and more popular because of the tremendous advantages provided thereby (for example, flexible re-use of existing software code). In object oriented programming, an application contains organizational components (e.g. objects), each having certain relationships to other components and each having a large number of attributes used to define the components.
Typically, when writing an object-oriented program, the programmer will try to make the various systems administrators' program installation jobs easier by dividing the application's organizational components into two groups: definitional managed objects (referred to hereinafter as `model objects`) and operational managed objects (referred to hereinafter as `image objects`).
The model objects represent the parts of the application which each systems administrator can configure according to his specific needs. That is, the attributes of the model objects and the relationships between the model objects can be adjusted. The systems administrator is provided with configuration details on his display screen concerning these model objects so that he can adjust the attributes of these objects and the relationships between the objects as he sees fit.
On the other hand the image objects represent the parts of the application which the systems administrator usually cannot change directly. Configuration details of the image objects are thus not usually presented to the systems administrator's display screen. The preset configuration details for the image objects are, instead, sent directly to the computer system bypassing the administrator. The administrator can only alter them by first altering the configuration details of the model objects (which are on his screen) and then the image objects can be altered based on his alteration of the model objects.
The image objects represent the present state of the installed application, including changes made thereto by the systems administrators' configuring of the model objects and the application programmer's preset configurations. Thus, the systems administrator's installation job is made easier as he only sets the configurations of the model objects.
While this separation of organizational components of an object-oriented application into two parts has made it easier for an administrator to install an application, in a large system the allowable permutations of even the model objects can still be extremely complex. Therefore, as these large-scale applications are being sold to organizations, the respective systems administrators are faced with an increasingly difficult task in appropriately setting the object attributes and object relationships while installing a new application. This problem has made it more and more undesirable for organizations to purchase such applications, despite the great advantages they could attain if they were to purchase and install the application.